package com.monlyu.util;

import java.util.HashMap;
import java.util.Map;

import com.monlyu.ftl.impl.FtlRenderImpl;

/********************************************************************************
 * 
 * <b>功能描述☞</b>Ftl模板工具类<br>
 * 
 * <b>开发公司☞</b>重庆唯尼科技有限公司<br>
 * <b>版权☞</b>本文件归重庆唯尼科技有限公司所有<br>
 * <b>项目名☞</b>monlyu<br>
 * <b>文件路径☞</b>com.monlyu.bo.RoleBo.java<br>
 * <b>开发日期☞</b>2010-1-13 <br>
 * 
 * @author monlyu
 * @since JDK 5
 * @version : 1.0.5
 * 
 ********************************************************************************/
public class FtlUtil {

	/**
	 * 把字符串输入给一个Ftl模板
	 * 
	 * @param data
	 *            对应值的数据集
	 * @param ftl
	 *            ftl模板文件
	 * @return 经过组合之后的文件
	 * @throws Exception
	 *             非法模板异常
	 */
	public final static String render2Ftl(Map<String, Object> data, String ftl) throws Exception {
		return FtlRenderImpl.getInstance().render(data, ftl);
	}

	/**
	 * 把字符串输入给一个Ftl模板
	 * 
	 * @param data
	 *            对应值的数据集
	 * @param string
	 *            模板文字
	 * @return 经过组合之后的文件
	 * @throws Exception
	 *             非法模板异常
	 */
	public final static String render2Str(Map<String, Object> data, String string) throws Exception {
		return FtlRenderImpl.getInstance().render(data, string);
	}
	
	@SuppressWarnings("unchecked")
	private static Map<String, Object> toMap(Object data) {
		if (data instanceof Map) {
			return (Map<String, Object>) data;
		}
		Map map = new HashMap();
		map.put("data", data);
		return map;
	}

	public static Object render2Ftl(Object data, String ftl) throws Exception {
		return render2Ftl(toMap(data), ftl);
	}
}
